﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using _4.Modelado.Seguridad;

namespace _3.Datos.Seguridad
{
     public class PerfilBD
    {
        public int GuardarPerfil(SqlCommand comando, Perfil obj)
        {
            try
            {
                string sp = "usp_PerfilGuardar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PerfilNombre", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PerfilDescripcion", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@PK_Perfil", SqlDbType.Int));


                comando.Parameters[0].Value = obj.sPerfilNombre;
                comando.Parameters[1].Value = obj.sPerfilDescripcion;
                comando.Parameters[2].Value = obj.iPK_Perfil;
                comando.Parameters[2].Direction = ParameterDirection.InputOutput;


                comando.ExecuteNonQuery();
                return Convert.ToInt32(comando.Parameters[2].Value);

            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

   
        public List<Perfil> ConsultarPerfiles(SqlCommand comando)
        {
            try
            {
                string sp = "usp_PerfilesConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                var lista = new List<Perfil>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var obj = new Perfil();
                    obj.sPerfilNombre = dt.Rows[i]["PerfilNombre"].ToString();
                    obj.sPerfilDescripcion = dt.Rows[i]["PerfiDescripcion"].ToString();
                    obj.iPK_Perfil = Convert.ToInt32(dt.Rows[i]["PK_Perfil"]);
                    lista.Add(obj);
                }
                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public DataTable LlenarPerfiles(SqlCommand comando)
        {
            try
            {
                string sp = "usp_PerfilesComboConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];


                return ds.Tables[0];
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public void EliminarPerfil(SqlCommand comando, Perfil obj)
        {
            try
            {
                string sp = "usp_PerfilEliminar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PK_Perfil", SqlDbType.VarChar));
                comando.Parameters[0].Value = obj.iPK_Perfil;


                comando.ExecuteNonQuery();

            }
            catch (Exception e)
            {
                
                throw e;
            }
        }
    }
}
